package com.intelligent.service;

import com.intelligent.entity.UserNotice;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;

/**
 * @author lenovo
 * @description 针对表【user_notice(用户通知关联表)】的数据库操作Service
 * @createDate 2025-09-05 11:47:50
 */
public interface UserNoticeService extends IService<UserNotice> {

    /**
     * 创建用户通知关联
     * 
     * @param noticeId    通知ID
     * @param receiverIds 接收人ID列表
     * @return 是否成功
     */
    Boolean createUserNotices(Integer noticeId, List<Long> receiverIds);

    /**
     * 获取用户通知状态
     * 
     * @param noticeId 通知ID
     * @param userId   用户ID
     * @return 用户通知记录
     */
    UserNotice getUserNoticeStatus(Integer noticeId, Long userId);

    /**
     * 标记通知为已读
     * 
     * @param noticeId 通知ID
     * @param userId   用户ID
     * @return 是否成功
     */
    Boolean markAsRead(Integer noticeId, Long userId);

    /**
     * 获取用户未读通知数量
     * 
     * @param userId 用户ID
     * @return 未读数量
     */
    Integer getUnreadCount(Long userId);

    /**
     * 批量标记为已读
     * 
     * @param noticeIds 通知ID列表
     * @param userId    用户ID
     * @return 是否成功
     */
    Boolean batchMarkAsRead(List<Integer> noticeIds, Long userId);

}
